package net.servir.capacidades.web.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import net.servir.capacidades.model.CapValidacion;
import net.servir.capacidades.model.ServicioCivil;
import net.servir.capacidades.service.CapacidadesService;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class RecuperarClaveConfirmacionController {

	@Autowired
	private CapacidadesService capacidadesService;

	@RequestMapping("/recuperarClaveConfirmacion.htm")
	public @ModelAttribute("confirmacionInscripcion")
	String[] confirmacionInscripcion(HttpServletRequest request, HttpServletResponse response)
	{	
		
		HttpSession session = request.getSession();
		CapValidacion obj = new CapValidacion();
		String mensaje = "";
		Integer idSistema = 0;
		String cap_validacion = null;
		String cap_validacion_serv = null;
		String idsesion =session.getId();  
		String pre_idsesion =request.getParameter("ref");
		String pre_idsesion_serv = null;
		String dni = request.getParameter("dni");
		String cod_session =session.getId();
		obj.setCod_session(cod_session);
		Integer numIntentos = 0;

		// Validar resultados de lo enviado desde RecuperarClave
		
		if (session.getAttribute("captcha_serv") != null)
			cap_validacion_serv = session.getAttribute("captcha_serv").toString();
		
		cap_validacion =request.getParameter("captcha");

		if (pre_idsesion != null)
		{
			// valido id de sesion
			//if (pre_idsesion != null)
			if (!pre_idsesion.equals(idsesion))
			{
				request.setAttribute("acceso", "CANCEL");
				session.setAttribute("mensaje", "Usuario no válido, por favor intente de nuevo.");
			}
			if (pre_idsesion_serv != null)
			if (!pre_idsesion_serv.equals(idsesion))
			{
				request.setAttribute("acceso", "CANCEL");
				session.setAttribute("mensaje", "Usuario no válido, por favor intente de nuevo.");
			}
			// valido Captcha
			//if (cap_validacion != null & cap_validacion_serv != null)
			if (!cap_validacion_serv.equals(cap_validacion))
			{
				request.setAttribute("acceso", "CANCEL");
				session.setAttribute("mensaje", "Acceso no válido, por favor intente de nuevo.");
			}
		}
		
		try {
			if(request.getAttribute("acceso")!= null)
			{
				// if (request.getAttribute("acceso").equals("CANCEL"))
				// response.sendRedirect(response.encodeRedirectURL("recuperarClave.htm"));
			}

		} catch (Exception e) {
			return null;
		}
		
		if(session.getAttribute("num_intentos") != null)
		{
			numIntentos = Integer.parseInt(session.getAttribute("num_intentos").toString());
		}
		

		if (request.getParameter("idSistema") != null)
		{
			idSistema = Integer.valueOf(request.getParameter("idSistema").toString());
		}
		
		if (request.getParameter("dni") != null)
		{
			dni = (String) request.getParameter("dni");
		}
		
		session.setAttribute("captcha_serv", obj.getCap1() + obj.getCap2());
		session.setAttribute("idsesion_serv", session.getId().toString());
		session.setAttribute("ref",session.getId().toString() );
		session.setAttribute("idsesion_serv", session.getId().toString());

		if (session.getAttribute("captcha_serv") != null)
			cap_validacion_serv = session.getAttribute("captcha_serv").toString();
		
		cap_validacion =request.getParameter("captcha");
		
		if (!cap_validacion_serv.equals(cap_validacion))
		{
			request.setAttribute("acceso", "CANCEL");
			session.setAttribute("mensaje", "Acceso no válido, por favor intente de nuevo.");
		}
		
		if (numIntentos > 3)
		{	
			mensaje = "Ha excedido el número máximo de intentos de recuperación de clave, contacte con diagnostico@servir.gob.pe";
		}
		else
		{
			mensaje = capacidadesService.ObtenerClave(dni, idSistema);
		}
		String[] resultados = mensaje.split("&");
		return resultados;		
	}
}
		
		
		
		
		
	